data structures dfs and similar graphs greedy implementation trees *2000

Please click on ads to support us..

Python Code:

import sys
input = sys.stdin.readline

def readList():
    return list(map(int, input().split()))
def readInt():
    return int(input())
def readInts():
    return map(int, input().split())
def readStr():
    return input().strip()

def solve():
    n, A, B = readInt(), readList(), readList()
    graph = [[] for _ in range(n)]
    par = [-1] * n
    for i in range(n):
        if B[i] != -1:
            graph[B[i]-1].append(i)
            par[i] = B[i]-1

    now, after = [], []
    for i in range(n):
        if B[i] == -1:
            st = [(i, 0)]
            while st:
                node, exp = st.pop()
                if exp:
                    if node == i:
                        now.append(node+1)
                        continue
                    if A[node] >= 0:
                        A[par[node]] += A[node]
                        now.append(node+1)
                    else:
                        after.append(node+1)
                else:
                    st.append((node, 1))
                    for nei in graph[node]:
                        st.append((nei, 0))
    print(sum(A))
    print(*(now + after[::-1]))
    return

solve()


Comments

Submit
0 Comments
More Questions

1330A - Dreamoon and Ranking Collection
1692B - All Distinct
1156C - Match Points
1675A - Food for Animals
1328C - Ternary XOR
1689A - Lex String
1708B - Difference of GCDs
863A - Quasi-palindrome
1478A - Nezzar and Colorful Balls
1581B - Diameter of Graph
404A - Valera and X
908A - New Year and Counting Cards
146A - Lucky Ticket
1594C - Make Them Equal
1676A - Lucky
1700B - Palindromic Numbers
702C - Cellular Network
1672C - Unequal Array
1706C - Qpwoeirut And The City
1697A - Parkway Walk
1505B - DMCA
478B - Random Teams
1705C - Mark and His Unfinished Essay
1401C - Mere Array
1613B - Absent Remainder
1536B - Prinzessin der Verurteilung
1699B - Almost Ternary Matrix
1545A - AquaMoon and Strange Sort
538B - Quasi Binary
424A - Squats